#include "StdAfx.h"
#include "libs\include\RF625Device.h"

using namespace RFDevice;

extern "C"
{
	RFDEVICEPROXYDLL RF625Device* CALLING_CONVENTION CreateRF625Device()
	{
		return new RF625Device();
	}

	RFDEVICEPROXYDLL RF625Device* CALLING_CONVENTION CreateRF625Device_1( LPUDP_DEVINFOBLOCK_PC  lpDevBlock )
	{
		return new RF625Device(lpDevBlock);
	}

	RFDEVICEPROXYDLL void CALLING_CONVENTION DisposeRF625Device(RF625Device* rf)
	{
		rf->~RF625Device();
		rf = NULL;
	}

	RFDEVICEPROXYDLL void CALLING_CONVENTION RF625Device_CloneParameters  (RF625Device* rf, RF625Device *  lpDev ) 
	{
		return rf->CloneParameters(lpDev);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_Connect(RF625Device* rf)
	{
		return rf->Connect();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_Connect_1(RF625Device* rf, LPUDP_DEVINFOBLOCK_PC  lpDevBlock ) 
	{
		return rf->Connect(lpDevBlock);
	}

	RFDEVICEPROXYDLL unsigned short CALLING_CONVENTION RF625Device_ConvertResultToPoints  (RF625Device* rf, 
		void IN *  lpResultBuffer,  
		float OUT *  lpPointsBuffer,  
		USHORT OUT *  lpCount)  
	{
		return rf->ConvertResultToPoints(lpResultBuffer, lpPointsBuffer, lpCount);
	}

	RFDEVICEPROXYDLL unsigned short CALLING_CONVENTION RF625Device_ConvertResultToPoints_1 (RF625Device* rf, 
		void IN *  lpResultBuffer,  
		float OUT *  lpPointsBuffer,  
		USHORT OUT *  lpCount  )  
	{
		return rf->ConvertResultToPoints(lpResultBuffer, lpPointsBuffer, lpCount);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_Disconnect(RF625Device* rf)
	{
		return rf->Disconnect();
	}
	
	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_FlushParams  (RF625Device* rf, BOOL  bDefault = FALSE ) 
	{
		return rf->FlushParams(bDefault);
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF625Device_GetAnalogueOutputNumberOfPoints   (RF625Device* rf) 
	{
		return rf->GetAnalogueOutputNumberOfPoints();
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF625Device_GetAnalogueOutputPointHoldupTime    (RF625Device* rf) 
	{
		return rf->GetAnalogueOutputPointHoldupTime ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_GetAnalogueOutputSyncEdge     (RF625Device* rf) 
	{
		return rf->GetAnalogueOutputSyncEdge  ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_GetAnalogueOutputSyncEnabled      (RF625Device* rf) 
	{
		return rf->GetAnalogueOutputSyncEnabled   ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_GetAnalogueOutputTTL_OUT0Level       (RF625Device* rf) 
	{
		return rf->GetAnalogueOutputTTL_OUT0Level    ();
	}

	RFDEVICEPROXYDLL WORD CALLING_CONVENTION RF625Device_GetBaseDistance(RF625Device* rf) 
	{
		return rf->GetBaseDistance();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_GetCapsAnalogueOutputByCurrent (RF625Device* rf) 
	{
		return rf->GetCapsAnalogueOutputByCurrent ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_GetCapsAnalogueOutputByVoltage  (RF625Device* rf) 
	{
		return rf->GetCapsAnalogueOutputByVoltage  ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_GetCapsExternalMeasurementSync   (RF625Device* rf) 
	{
		return rf->GetCapsExternalMeasurementSync   ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_GetCapsExternalResultSync    (RF625Device* rf) 
	{
		return rf->GetCapsExternalResultSync    ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_GetCapsLaserModulation     (RF625Device* rf) 
	{
		return rf->GetCapsLaserModulation     ();
	}

	RFDEVICEPROXYDLL const LPUDP_DEVINFOBLOCK_PC CALLING_CONVENTION RF625Device_GetDevBlock(RF625Device* rf) 
	{
		return rf->GetDevBlock();
	}

	RFDEVICEPROXYDLL const BYTE* CALLING_CONVENTION RF625Device_GetDeviceIPAddress (RF625Device* rf) 
	{
		return rf->GetDeviceIPAddress ();
	}

	RFDEVICEPROXYDLL WORD CALLING_CONVENTION RF625Device_GetExposureTime  (RF625Device* rf) 
	{
		return rf->GetExposureTime  ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_GetExternalMeasurementSyncEdge(RF625Device* rf) 
	{
		return rf->GetExternalMeasurementSyncEdge();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_GetExternalMeasurementSyncEnabled(RF625Device* rf) 
	{
		return rf->GetExternalMeasurementSyncEnabled();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_GetExternalResultSyncEdge (RF625Device* rf) 
	{
		return rf->GetExternalResultSyncEdge ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_GetExternalResultSyncEnabled(RF625Device* rf) 
	{
		return rf->GetExternalResultSyncEnabled();
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF625Device_GetExternalSignalDivisor(RF625Device* rf) 
	{
		return rf->GetExternalSignalDivisor();
	}

	RFDEVICEPROXYDLL DWORD CALLING_CONVENTION RF625Device_GetFirmwareVersion(RF625Device* rf) 
	{
		return rf->GetFirmwareVersion();
	}

	RFDEVICEPROXYDLL const BYTE * CALLING_CONVENTION RF625Device_GetHostIPAddress (RF625Device* rf) 
	{
		return rf->GetHostIPAddress ();
	}

	RFDEVICEPROXYDLL WORD CALLING_CONVENTION RF625Device_GetHostPortNumber(RF625Device* rf) 
	{
		return rf->GetHostPortNumber();
	}

	RFDEVICEPROXYDLL char* CALLING_CONVENTION RF625Device_GetHumanReadableDeviceIPAddress(RF625Device* rf) 
	{
		return rf->GetHumanReadableDeviceIPAddress ();
	}

	RFDEVICEPROXYDLL char* CALLING_CONVENTION RF625Device_GetHumanReadableHostIPAddress(RF625Device* rf) 
	{
		return rf->GetHumanReadableHostIPAddress  ();
	}

	RFDEVICEPROXYDLL char* CALLING_CONVENTION RF625Device_GetHumanReadableNetworkMask(RF625Device* rf) 
	{
		return rf->GetHumanReadableNetworkMask();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_GetImage(RF625Device* rf, void *  lpBuffer ) 
	{
		return rf->GetImage(lpBuffer);
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF625Device_GetLaserLevel(RF625Device* rf) 
	{
		return rf->GetLaserLevel();
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF625Device_GetLeftBoundary (RF625Device* rf) 
	{
		return rf->GetLeftBoundary ();
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF625Device_GetMeasurementDelay(RF625Device* rf) 
	{
		return rf->GetMeasurementDelay();
	}

	RFDEVICEPROXYDLL WORD CALLING_CONVENTION RF625Device_GetMeasurementRangeXEMR(RF625Device* rf) 
	{
		return rf->GetMeasurementRangeXEMR();
	}

	RFDEVICEPROXYDLL WORD CALLING_CONVENTION RF625Device_GetMeasurementRangeXSMR(RF625Device* rf) 
	{
		return rf->GetMeasurementRangeXSMR();
	}

	RFDEVICEPROXYDLL WORD CALLING_CONVENTION RF625Device_GetMeasurementRangeZ(RF625Device* rf) 
	{
		return rf->GetMeasurementRangeZ();
	}

	RFDEVICEPROXYDLL const BYTE * CALLING_CONVENTION RF625Device_GetNetworkMask(RF625Device* rf) 
	{
		return rf->GetNetworkMask();
	}

	RFDEVICEPROXYDLL unsigned short CALLING_CONVENTION RF625Device_GetNormalizedResult(RF625Device* rf,
		float OUT *  lpPointsBuffer,
		USHORT OUT *  lpCount)
	{
		return rf->GetNormalizedResult(lpPointsBuffer, lpCount);
	}
	

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_GetResult(RF625Device* rf, void *  lpBuffer) 
	{
		return rf->GetResult(lpBuffer);
	}

	RFDEVICEPROXYDLL short CALLING_CONVENTION RF625Device_GetResultInclinationAngle(RF625Device* rf) 
	{
		return rf->GetResultInclinationAngle();
	}

	RFDEVICEPROXYDLL short CALLING_CONVENTION RF625Device_GetRotationAngle(RF625Device* rf) 
	{
		return rf->GetRotationAngle();
	}

	RFDEVICEPROXYDLL DWORD CALLING_CONVENTION RF625Device_GetSerialNumber (RF625Device* rf) 
	{
		return rf->GetSerialNumber ();
	}

	RFDEVICEPROXYDLL WORD CALLING_CONVENTION RF625Device_GetSignalProcessingTime(RF625Device* rf) 
	{
		return rf->GetSignalProcessingTime();
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF625Device_GetUDPFrequency(RF625Device* rf) 
	{
		return rf->GetUDPFrequency();
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF625Device_GetUpperBoundary (RF625Device* rf) 
	{
		return rf->GetUpperBoundary ();
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF625Device_GetWindowHeight(RF625Device* rf) 
	{
		return rf->GetWindowHeight();
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF625Device_GetWindowWidth(RF625Device* rf) 
	{
		return rf->GetWindowWidth();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_PingTest(RF625Device* rf) 
	{
		return rf->PingTest();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_ReadParams(RF625Device* rf) 
	{
		return rf->ReadParams();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_WriteParams(RF625Device* rf) 
	{
		return rf->WriteParams();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetAnalogueOutputNumberOfPoints(RF625Device* rf, BYTE  ucValue ) 
	{
		return rf->SetAnalogueOutputNumberOfPoints(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetAnalogueOutputPointHoldupTime(RF625Device* rf, BYTE  ucValue ) 
	{
		return rf->SetAnalogueOutputPointHoldupTime(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetAnalogueOutputSyncEdge(RF625Device* rf,  BOOL  bValue  ) 
	{
		return rf->SetAnalogueOutputSyncEdge (bValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetAnalogueOutputSyncEnabled(RF625Device* rf, BOOL  bValue ) 
	{
		return rf->SetAnalogueOutputSyncEnabled(bValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetAnalogueOutputTTL_OUT0Level(RF625Device* rf, BOOL  bValue ) 
	{
		return rf->SetAnalogueOutputTTL_OUT0Level(bValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetDeviceIPAddress(RF625Device* rf, BYTE  ucValue[4] )
	{
		return rf->SetDeviceIPAddress(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetExposureTime(RF625Device* rf, WORD  wValue ) 
	{
		return rf->SetExposureTime(wValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetExternalMeasurementSyncEdge(RF625Device* rf, BOOL  bValue ) 
	{
		return rf->SetExternalMeasurementSyncEdge (bValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetExternalMeasurementSyncEnabled(RF625Device* rf, BOOL  bValue ) 
	{
		return rf->SetExternalMeasurementSyncEnabled(bValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetExternalResultSyncEdge(RF625Device* rf, BOOL  bValue ) 
	{
		return rf->SetExternalResultSyncEdge (bValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetExternalResultSyncEnabled(RF625Device* rf, BOOL  bValue ) 
	{
		return rf->SetExternalResultSyncEnabled(bValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetExternalSignalDivisor(RF625Device* rf, BYTE  ucValue )
	{
		return rf->SetExternalSignalDivisor(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetHostIPAddress(RF625Device* rf, BYTE  ucValue[4] ) 
	{
		return rf->SetHostIPAddress(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetHostPortNumber(RF625Device* rf, WORD  wValue ) 
	{
		return rf->SetHostPortNumber(wValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetLaserLevel(RF625Device* rf, BYTE  ucValue ) 
	{
		return rf->SetLaserLevel (ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetLeftBoundary(RF625Device* rf, BYTE  ucValue ) 
	{
		return rf->SetLeftBoundary(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetMeasurementDelay(RF625Device* rf, BYTE  ucValue ) 
	{
		return rf->SetMeasurementDelay(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetNetworkMask(RF625Device* rf, BYTE  ucValue[4] ) 
	{
		return rf->SetNetworkMask(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetRotationAngle(RF625Device* rf, short  sValue ) 
	{
		return rf->SetRotationAngle(sValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetSignalProcessingTime (RF625Device* rf, WORD  wValue  ) 
	{
		return rf->SetSignalProcessingTime (wValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetUDPFrequency(RF625Device* rf, BYTE  ucValue ) 
	{
		return rf->SetUDPFrequency(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetUpperBoundary (RF625Device* rf, BYTE  ucValue ) 
	{
		return rf->SetUpperBoundary (ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetWindowHeight(RF625Device* rf, BYTE  ucValue ) 
	{
		return rf->SetWindowHeight(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_SetWindowWidth(RF625Device* rf, BYTE  ucValue ) 
	{
		return rf->SetWindowWidth(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_UDPConnect(RF625Device* rf,
		USHORT  usUDPPort,  
		LPCSTR  szLocalIPAddress = NULL)
	{
		return rf->UDPConnect(usUDPPort, szLocalIPAddress);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_UDPDisconnect(RF625Device* rf) 
	{
		return rf->UDPDisconnect();
	}

	/*RFDEVICEPROXYDLL unsigned short CALLING_CONVENTION RF625Device_UDPGetNormalizedResult(RF625Device* rf,
		DWORD OUT *  lpPointsBuffer,  
		USHORT OUT *  lpCount)
	{
		return rf->UDPGetNormalizedResult (lpPointsBuffer, lpCount);
	}*/

	RFDEVICEPROXYDLL unsigned short CALLING_CONVENTION RF625Device_UDPGetNormalizedResult_1(RF625Device* rf,
		float OUT *  lpPointsBuffer,  
		USHORT OUT *  lpCount)
	{
		return rf->UDPGetNormalizedResult(lpPointsBuffer, lpCount);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_UDPGetResult(RF625Device* rf, void *  lpBuffer) 
	{
		return rf->UDPGetResult (lpBuffer);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF625Device_UDPPacketCounter (RF625Device* rf, void *  lpBuffer ) 
	{
		return rf->UDPPacketCounter(lpBuffer);
	}
	
	RFDEVICEPROXYDLL size_t CALLING_CONVENTION RF625Device_ImageBufferSize()
	{
		return RF625Device::ImageBufferSize;
	}

	RFDEVICEPROXYDLL size_t CALLING_CONVENTION RF625Device_ProfileBufferSize()
	{
		return RF625Device::ProfileBufferSize ;
	}

	RFDEVICEPROXYDLL size_t CALLING_CONVENTION RF625Device_ProfileValuesCount()
	{
		return RF625Device::ProfileValuesCount;
	}

	//NewAfter620

	RFDEVICEPROXYDLL bool CALLING_CONVENTION RF625Device_Reboot(RF625Device* rf)
	{
		return rf->Reboot();
	}

	RFDEVICEPROXYDLL bool CALLING_CONVENTION RF625Device_PowerOff(RF625Device* rf)
	{
		return rf->PowerOff();
	}

	RFDEVICEPROXYDLL bool CALLING_CONVENTION RF625Device_SetDevicePortNumber(RF625Device* rf, WORD Port)
	{
		return rf->SetDevicePortNumber(Port);
	}

	RFDEVICEPROXYDLL WORD CALLING_CONVENTION RF625Device_GetDevicePortNumber(RF625Device* rf)
	{
		return rf->GetDevicePortNumber();
	}

	RFDEVICEPROXYDLL bool CALLING_CONVENTION RF625Device_SetPixelBrightnessThreshold(RF625Device* rf, BYTE Value)
	{
		return rf->SetPixelBrightnessThreshold(Value);
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF625Device_GetPixelBrightnessThreshold(RF625Device* rf)
	{
		return rf->GetPixelBrightnessThreshold();
	}

	RFDEVICEPROXYDLL bool CALLING_CONVENTION RF625Device_SetAutoExposureMode(RF625Device* rf, BYTE Mode)
	{
		return rf->SetAutoExposureMode(Mode);
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF625Device_GetAutoExposureMode(RF625Device* rf)
	{
		return rf->GetAutoExposureMode();
	}

	RFDEVICEPROXYDLL bool CALLING_CONVENTION RF625Device_SetEnableLegacyMode(RF625Device* rf, bool Enable)
	{
		return rf->SetEnableLegacyMode(Enable);
	}

	RFDEVICEPROXYDLL bool CALLING_CONVENTION RF625Device_GetEnabledLegacyMode(RF625Device* rf)
	{
		return rf->GetEnabledLegacyMode();
	}

	RFDEVICEPROXYDLL bool CALLING_CONVENTION RF625Device_SetEnableRawImageMode(RF625Device* rf, bool Enable)
	{
		return rf->SetEnableRawImageMode(Enable);
	}

	RFDEVICEPROXYDLL bool CALLING_CONVENTION RF625Device_GetEnabledRawImageMode(RF625Device* rf)
	{
		return rf->GetEnabledRawImageMode();
	}

	RFDEVICEPROXYDLL bool CALLING_CONVENTION RF625Device_SetEnableInterpolation(RF625Device* rf, bool Enable)
	{
		return rf->SetEnableInterpolation(Enable);
	}

	RFDEVICEPROXYDLL bool CALLING_CONVENTION RF625Device_GetEnabledInterpolation(RF625Device* rf)
	{
		return rf->GetEnabledInterpolation();
	}

	RFDEVICEPROXYDLL bool CALLING_CONVENTION RF625Device_GetAutoExposure(RF625Device* rf, LPWORD usValue)
	{
		return rf->GetAutoExposure(usValue);
	}

	/*RFDEVICEPROXYDLL bool CALLING_CONVENTION RF625Device_SetEnableProfibusMode(RF625Device* rf, bool Enable)
	{
		return rf->SetEnableProfibusMode(Enable);
	}

	RFDEVICEPROXYDLL bool CALLING_CONVENTION RF625Device_GetEnabledProfibusMode(RF625Device* rf)
	{
		return rf->GetEnabledProfibusMode();
	}*/
}